package cn.zqy.demo2.day02.demo01;

import java.util.*;

/**
 * Collection是所有单列集合的父接口，
 *      因此在Collection中定义了单列集合(List和Set)通用的一些方法，
 *      这些方法可用于操作所有的单列集合。
 *
 *  共有方法：
 *      1.public boolean add(E e)： 把给定的对象添加到当前集合中 。
 *      2.public void clear() :清空集合中所有的元素。
 *      3.public boolean remove(E e): 把给定的对象在当前集合中删除。
 *      4.public boolean contains(E e): 判断当前集合中是否包含给定的对象。
 *      5.public boolean isEmpty(): 判断当前集合是否为空。
 *      6.public int size(): 返回集合中元素的个数。
 *      7.public Object[] toArray(): 把集合中的元素，存储到数组中。
 * */
public class Demo01Collection {
    public static void main(String[] args) {
        // Collection的子类均可使用这些方法
        Collection<String> li = new ArrayList<>();

        System.out.println(li);  // []，重写了toString方法
       /* 1.add(E e),给定的对象添加到当前集合中*/
        li.add("张三");
        li.add("李四");
        li.add("王五");
        li.add("赵六");
        li.add("田七");
        li.add("田七");
        li.add("田七");
        li.add("田七");

        System.out.println(li);

        // 2.remove()。多个相同的元素，则只会删除一个元素。
        boolean b1 = li.remove("田七");
        System.out.println("b1:" + b1);
        System.out.println(li);

        //3.contains(E e) 判断当前集合中是否包含给定的对象
        boolean b2 = li.contains("王五");  // true
        System.out.println("b2:" + b2);
        boolean b3 = li.contains("王");  // false
        System.out.println("b3:" + b3);
        System.out.println("====================");
        // 4.isEmpty(): 判断当前集合是否为空。
        boolean empty = li.isEmpty(); // false
        System.out.println("empty: " + empty);

        // 5.size(): 返回集合中元素的个数。
        int num = li.size();
        System.out.println("num : "+ num);

        // 6.toArray();把集合中的元素，存储到数组中。
        Object[] list = li.toArray();
        for (int i = 0; i < list.length; i++) {
            System.out.print(list[i] + "   ");
        }

        // 7.clear() :清空集合中所有的元素。
        li.clear();
        System.out.println("\n" + li);
    }
}
